GtkStyleContext: Add gtk_style_context_[gs]et_junction_sides().
authorCarlos Garnacho <carlosg@gnome.org>
Tue, 3 Aug 2010 18:33:53 +0000 (20:33 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Sat, 4 Dec 2010 14:37:31 +0000 (15:37 +0100)
These functions will help widgets specify how does one element being painted
relate to other contiguous elements.

gtk/gtkstylecontext.c
gtk/gtkstylecontext.h

index 591094b304278089749edec1222e51c8fe544999..c896bc9bec996a6c8f1d85740b37e32efa32c959 100644 (file)
@@ -61,6 +61,7 @@ struct GtkStyleRegion
 {
   GArray *style_classes;
   GArray *child_style_classes;
+  GtkJunctionSides junction_sides;
 };
 
 struct GtkStyleContextPrivate
@@ -166,6 +167,9 @@ style_region_copy (const GtkStyleRegion *region)
   g_array_insert_vals (copy->child_style_classes, 0,
                        region->child_style_classes->data,
                        region->child_style_classes->len);
+
+  copy->junction_sides = region->junction_sides;
+
   return copy;
 }
 
@@ -1255,6 +1259,33 @@ gtk_style_context_get_direction (GtkStyleContext *context)
   return priv->direction;
 }
 
+void
+gtk_style_context_set_junction_sides (GtkStyleContext  *context,
+                                     GtkJunctionSides  sides)
+{
+  GtkStyleContextPrivate *priv;
+  GtkStyleRegion *region;
+
+  g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
+
+  priv = context->priv;
+  region = priv->regions->data;
+  region->junction_sides = sides;
+}
+
+GtkJunctionSides
+gtk_style_context_get_junction_sides (GtkStyleContext *context)
+{
+  GtkStyleContextPrivate *priv;
+  GtkStyleRegion *region;
+
+  g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), 0);
+
+  priv = context->priv;
+  region = priv->regions->data;
+  return region->junction_sides;
+}
+
 gboolean
 gtk_style_context_lookup_color (GtkStyleContext *context,
                                 const gchar     *color_name,
index 133f3573972b2b0d67c95a3da7a98ba74b49c14b..73a3e9fe945544dad5c77af38e5764eaa67035ca 100644 (file)
@@ -118,6 +118,10 @@ void             gtk_style_context_set_direction (GtkStyleContext  *context,
                                                   GtkTextDirection  direction);
 GtkTextDirection gtk_style_context_get_direction (GtkStyleContext  *context);
 
+void             gtk_style_context_set_junction_sides (GtkStyleContext  *context,
+                                                      GtkJunctionSides  sides);
+GtkJunctionSides gtk_style_context_get_junction_sides (GtkStyleContext  *context);
+
 gboolean gtk_style_context_lookup_color (GtkStyleContext *context,
                                          const gchar     *color_name,
                                          GdkColor        *color);